UNPKG

nuxt-simple-sitemap

Version:

Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.

23 lines (22 loc) 850 B
import { createError, defineEventHandler } from "h3"; import { parseURL } from "ufo"; import { createSitemap } from "../sitemap/nitro.mjs"; import { useSimpleSitemapRuntimeConfig } from "../utils.mjs"; export default defineEventHandler(async (e) => { const path = parseURL(e.path).pathname; if (!path.endsWith("-sitemap.xml")) return; const { sitemaps } = useSimpleSitemapRuntimeConfig(); const sitemapName = path.replace("-sitemap.xml", "").replace("/", ""); const isChunking = typeof sitemaps.chunks !== "undefined" && !Number.isNaN(Number(sitemapName)); if (!(sitemapName in sitemaps) && !isChunking) { return createError({ statusCode: 404, message: `Sitemap "${sitemapName}" not found.` }); } return createSitemap(e, isChunking ? { ...sitemaps.chunks, sitemapName } : sitemaps[sitemapName]); });